A mesh network is a local network topology in which infrastructure nodes connect directly, dynamically and non-hierarchically to as many other nodes as possible and cooperate with one another to efficiently route data from and/or to clients. Mesh networks dynamically self-organize and self-configure, which may reduce installation overhead. The ability to self-configure enables dynamic distribution of workloads, particularly in the event that a few nodes should fail. This in turn contributes to fault-tolerance and reduced maintenance costs.
Version 1.0 of the Bluetooth Mesh Profile specification was released in July 2017. In this first release of Bluetooth Mesh, which works over Bluetooth Low Energy (BLE) core specification v4.0 or later, mesh messages are exchanged over a bearer referred to as the advertising bearer. The advertising bearer utilizes connection-less data transfer over BLE advertising as defined in v4.0 of the Core specification, i.e., data is broadcasted in a contention based manner over the three BLE advertising channels using an over-the-air data rate of 1 Mbps. Contention based access is an access method that is used to share a broadcast medium. In contention, any node in the network can transmit data at any time in a first come-first served way.
Later versions of the Bluetooth Mesh specification may support additional bearers. It is expected that future versions of the Bluetooth Mesh Profile would support a new connection-less bearer utilizing features from the Bluetooth 5 Core specification. In such a case, communication between Mesh relay nodes and communication from a Mesh relay node to an end node could be based on Periodic Advertising (PA), while data injected by end nodes into the Mesh could be based on LE Extended Advertising or the already existing advertising bearer. When using Periodic Advertising data is sent at fixed intervals.
When running Mesh over PA, every relay node broadcasts data at a regular interval over a frequency hopping channel. PA data transmission takes place over the BLE data channels. To receive the data that is forwarded by the respective relay nodes, other relay nodes and end nodes synchronize to the PA transmissions from one or several relay nodes. It is expected that relay nodes would synchronize to all relay nodes within range, while end nodes would synchronize to a single or just a few relay nodes within range. A PA transmission may potentially aggregate several mesh network protocol data units (PDUs), and a relay node with no new network PDU to forward would simply transmit an empty PA message or repeat the previous transmission. When not listening to the PA transmissions from other relay nodes or performing its own PA transmission, relay nodes are expected to scan the advertising channels for first-hop messages injected into the Mesh network by end nodes.
A well-known, and commonly used, technique for increasing the probability that a message is successfully delivered from source to destination is message repetition. Such message repetition may be used both between relay nodes and between an end node and a relay node, and it may be performed on an end-to-end or on a hop-by-hop basis.
FIG. 1 depicts an example of a mesh network deployment comprising 16 relay nodes. Only a single end node is depicted. The example is generated under the assumption that relay nodes are deployed at a unitary grid wherein relay nodes are separated one unit vertically and horizontally, and that two nodes are within range and have direct connectivity, if the distance is below √3 unit lengths.
Thus FIG. 1 provides a schematic example of a mesh network deployment comprising 16 relay nodes (RLs), enumerated from 0 to 15. The relay nodes forward messages such as e.g. data transmissions in the mesh network. FIG. 1 further depicts one end node marked by an unfilled circle. Such an end node may generate data, and hence inject messages in the mesh network, i.e., acting as a source node. The end node may generate and inject messages into the mesh at any time. Furthermore, end nodes may also be the destination of messages, received via any of the relay nodes to which the end node is synchronized.
The relay nodes in FIG. 1 send data over a PA bearer and it is expected that each relay node synchronizes to all other relay nodes within range. In FIG. 1, relay node connectivity is depicted using a solid line. It is assumed that the connectivity is bi-directional, i.e., RLi is synchronized to the PA transmissions of RLj, and RLj is synchronized to the PA transmissions of RLi (i≠j). A relay node in the middle part of the deployment, like RL5, is hence synchronized to eight other relay nodes (0, 1, 2, 4, 6, 8, 9, 10), and the same eight relay nodes are synchronized to RL5.
FIG. 2 depicts PA transmissions and receptions as seen from RL5 in the upper plot, and RL6 in the lower plot, respectively, under the simplifying assumption that the period of the PA transmissions is same for all relay nodes and equals T. The PA transmissions are frequency hopping, and typically the different PA transmissions in FIG. 2 are transmitted and/or received over different frequency channels. The time that is not used for receiving PA transmissions from other relay nodes, or sending its own PA transmission, RL5 and RL6 use to scan the advertising channels for new messages. As seen from FIG. 2, RL5 and RL6 are often busy at the same time listening to the same PA transmission, e.g., from the relay nodes 9 and 10. Similarly, when RL5 is busy transmitting RL6 is busy receiving the PA transmission from RL5, and vice versa. Accordingly, there are time periods during which neither RL5 nor RL6 are listening to the advertising channels, and a new message injected by an end node during such a time would not be picked up by any of these two relay nodes.
The end node depicted in FIG. 1 is within range of 10 relay nodes, however, the end node may synchronize to only one or just a few of the relay nodes. Similarly, when the end node injects a new message in the mesh network, it can potentially be picked up by all the 10 relay nodes that are within range of the end node.